#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define DATE 1000


//定义球员结构体
struct player{
	char Name[20];
	int Age;
	int Height;
	int Weight;
	int Number;
	char Position[20]; 
	int Salary;
	char BirthDate[20];
};

//定义球队信息结构体
struct team{
	char Name[30];
	char EstablishmentTime[20];
	char HomeCourt[50];
	char Honor[500];
	int NumPeople;
};

//定义比赛信息结构体
struct competition{
	char Name[100];
	char HomeT[100];
	char VisitT[100];
	char Date[20];
	int HomeTGoal;
	int VisitTGoal;
};

//定义球员比赛数据结构体
struct playerDate{
	char Name[20];
	int Number;
	char Position[20];
	int Goal;
	int Allpass;
	int Successpass;
	int Foul;
	int YellowC;
	int RedC;
};

//输入球队信息选项                     
void menu1(team t[DATE],int n);        
//输入球员信息选项                     
int menu2(player p[DATE],int n,int i);
//输入比赛信息选项                     
void menu3(competition c[DATE],int n); 
//输入球员比赛数据选项                 
void menu4(playerDate pd[DATE],int n); 

//查询球队信息选项
void show1(team t[DATE],int n);
//查询球员信息选项
void show2(player p[DATE],int n,int i);
//查询比赛信息选项
void show3(competition c[DATE],int n);
//查询球员比赛数据信息选项
void show4(playerDate pd[DATE],int n);

//增删球员选项
int add_cut(player p[DATE],int n,int i);
//增加球员选项
int add(player p[DATE],int n,int i);
//删减球员选项
int cut(player p[DATE],int n,int i);
//查询并删除1
int cut1(player p[DATE],int n,int i);
//查询并删除1.1
int cut1a(player p[DATE],int n,int i);
//查询并删除2
int cut2(player p[DATE],int n,int i);
//查询并删除2.1
int cut2a(player p[DATE],int n,int i);

//更改球队信息选项
void change_t(team t[DATE],int n);
//更改比赛信息选项
void change_tm(competition c[DATE],int n);










int main(int argc, char *argv[]) {
	int num;
	int n = 0;
	int i = 0;
	player p[DATE];
	team t[DATE];
	competition c[DATE];
	playerDate pd[DATE];
	while(1)
	{
		system("CLS");
		printf("\n\n\t\t欢迎进入球队信息管理系统!");
		printf("\n\n\t\t1.输入信息");
		printf("\n\n\t\t2.查询信息");
		printf("\n\n\t\t3.增删球员");
		printf("\n\n\t\t4.更改信息");
		printf("\n\n\t\t0.退出");
		printf("\n\n\t\t请输入选项:");
		int option1;
		int option2;
	    scanf("%d",&option1);
	    switch(option1)
	    {
		    case 0:
		    {
			    return 0;
		    }
		    //
		    case 1:
		    {
			    system("CLS");
			    printf("\n\n\t\t1.输入球队信息");
	            printf("\n\n\t\t2.输入球员信息");
        	    printf("\n\n\t\t3.输入比赛信息");
	            printf("\n\n\t\t4.输入球员比赛数据");
	            printf("\n\n\t\t0.退出\n");
	            printf("\n\n\t\t请输入选项:");
	            scanf("%d",&option2);
			    switch(option2)
			    {
				    case 0:
				    {
					    break;
				    }
				    case 1:
				    {
					    menu1(t,n);
					    break;
				    }
				    case 2:
				    {
				    	system("CLS");
				    	
					    num = menu2(p,num,i);
					    break;
				    }
				    case 3:
				    {
					    menu3(c,n);
					    break;
				    }
				    case 4:
				    {
					    menu4(pd,n);
					    break;
				    }
				    default: continue;
			    }
			    break;
		    }
		    //
		    case 2:
		    {
			    system("CLS");
			    printf("\n\n\t\t1.查询球队信息");
	            printf("\n\n\t\t2.查询球员信息");
        	    printf("\n\n\t\t3.查询比赛信息");
	            printf("\n\n\t\t4.查询球员比赛数据");
	            printf("\n\n\t\t0.退出\n");
	            printf("\n\n\t\t请输入选项:");
	            scanf("%d",&option2);
	            switch(option2)
	            {
	            	case 0:
	            	{
	            		break;
					}
					case 1:
					{
						show1(t,n);
						break;
					}
					case 2:
					{
						show2(p,num,i);
						break;
					}
					case 3:
					{
						show3(c,n);
						break;
					}
					case 4:
					{
						show4(pd,n);
						break;
					}
					default: continue;
				}
			    break;
		    }
		    //
		    case 3:
		    {
		 	    num = add_cut(p,num,i);
			    break;
		    }
		    //
		    case 4 :
		    {
		    	system("CLS");
		    	printf("\n\n\t\t请选择要更改的内容:");
		    	printf("\n\t\t1.更改球队信息:");
		    	printf("\n\t\t2.更改球队比赛信息:");
		    	printf("\n\t\t3.更改球员比赛信息:");
		    	printf("\n\t\t0.退出");
		    	printf("\n\t\t请输入选项:");
		    	int option2;
		    	scanf("%d",&option2);
		    	switch(option2)
		    	{
		    		case 0:
		    		{
		    			break;
					}
					case 1:
					{
						printf("\n\n\t\t请输入要更改的球队信息:");
                      	printf("\n\t\t1.球队名称:");
                     	printf("\n\n\t\t2.球队成立时间:");
                       	printf("\n\n\t\t3.球队主场:");
                    	printf("\n\n\t\t4.球队荣誉:");
                    	printf("\n\n\t\t5.球队人数:");
						change_t(t,n);
						break;
					}
					case 2:
					{
						printf("\n\n\t\t请输入要更改的球队比赛信息:");
                      	printf("\n\t\t1.比赛名称:");
                     	printf("\n\n\t\t2.比赛主场队伍:");
                       	printf("\n\n\t\t3.比赛客场队伍:");
                    	printf("\n\n\t\t4.比赛时间:");
                    	printf("\n\n\t\t5.主队进球数:");
                    	printf("\n\n\t\t6.客队进球数:");
                    	change_tm(c,n);
						break;
					}
					case 3:
					{
						printf("\n\n\t\t请输入要更改的球员比赛数据信息:");
                      	printf("\n\t\t1.球员名称:");
                     	printf("\n\n\t\t2.球员球衣号码:");
                       	printf("\n\n\t\t3.球员司职:");
                    	printf("\n\n\t\t4.球员进球数:");
                    	printf("\n\n\t\t5.球员总传球:");
                    	printf("\n\n\t\t6.球员成功传球:");
                    	printf("\n\n\t\t7.球员犯规数:");
                    	printf("\n\n\t\t8.球员黄牌数:");
                    	printf("\n\n\t\t9.球员红牌数:");
                    	
						break;
					}
					default: continue;
					}
					break;
				}
			    
			    default: continue;
	    }
		    
	    }
	
	
	
return 0;
}

//输入球队信息选项
void menu1(team t[DATE],int n)
{
	system("CLS");
	printf("\n\n\t\t请输入球队名称:");scanf("%s",&t[n].Name);
	printf("\n\t\t请输入球队成立时间:");scanf("%s",&t[n].EstablishmentTime);
	printf("\n\t\t请输入球队主场:");scanf("%s",&t[n].HomeCourt);
	printf("\n\t\t请输入球队历史荣誉:");scanf("%s",&t[n].Honor);
	printf("\n\t\t请输入球队人数:");scanf("%d",&t[n].NumPeople);
	system("pause");
	return;
}

//输入球员信息选项
int menu2(player p[DATE],int num,int i)
{
	printf("\n\n\t\t请输入球员人数:");scanf("%d",&num);
	system("CLS");
	for(i = 0;i < num;i++)
	{
		printf("\n\t\t请输入第%d位球员姓名:",i+1);
		scanf("%s",&p[i].Name);
		printf("\n\t\t请输入第%d位球员年龄:",i+1);
		scanf("%d",&p[i].Age);
		printf("\n\t\t请输入第%d位球员身高:",i+1);
		scanf("%d",&p[i].Height);
		printf("\n\t\t请输入第%d位球员体重:",i+1);
		scanf("%d",&p[i].Weight);
		printf("\n\t\t请输入第%d位球员球衣号码:",i+1);
		scanf("%d",&p[i].Number);
		fflush(stdin);
		printf("\n\t\t请输入第%d位球员司职:",i+1);
		gets(p[i].Position);
		fflush(stdin);
		printf("\n\t\t请输入第%d位球员薪水:",i+1);
		scanf("%d",&p[i].Salary);
		fflush(stdin);
		printf("\n\t\t请输入第%d位球员出生日期:",i+1);
		gets(p[i].BirthDate);
	    fflush(stdin);
	    system("CLS");
	}
	system("pause");
	return num;
}

//输入比赛信息选项
void menu3(competition c[DATE],int n)
{   
    system("CLS");
	printf("\n\n\t\t请输入比赛名称:");scanf("%s",&c[n].Name);
	printf("\n\t\t请输入主场队伍名称:");scanf("%s",&c[n].HomeT);
	printf("\n\t\t请输入客场队伍名称:");scanf("%s",&c[n].VisitT);
	printf("\n\t\t请输入比赛日期:");scanf("%s",&c[n].Date);
	printf("\n\t\t请输入主场队伍进球数:");scanf("%d",&c[n].HomeTGoal);
	printf("\n\t\t请输入客场队伍进球数:");scanf("%d",&c[n].VisitTGoal);
	system("pause");
	return;
}

//输入球员比赛数据选项
void menu4(playerDate pd[DATE],int n)
{
	system("CLS");
	printf("\n\n\t\t请输入球员名称:");scanf("%s",&pd[n].Name);
	printf("\n\t\t请输入球员号码:");scanf("%d",&pd[n].Number);
	printf("\n\t\t请输入球员司职:");scanf("%d",&pd[n].Position);
	printf("\n\t\t请输入球员进球数:");scanf("%d",&pd[n].Goal);
	printf("\n\t\t请输入球员总传球数:");scanf("%d",&pd[n].Allpass);
	printf("\n\t\t请输入球员成功传球数:");scanf("%d",&pd[n].Successpass);
	printf("\n\t\t请输入球员犯规数:");scanf("%d",&pd[n].Foul);
	printf("\n\t\t请输入球员黄牌数:");scanf("%d",&pd[n].YellowC);
	printf("\n\t\t请输入球员红牌数:");scanf("%d",&pd[n].RedC);
	system("pause");
	return;
}


//查询球队信息选项
void show1(team t[DATE],int n)
{
	system("CLS");
	printf("\n\n\t\t球队信息如下:");
	printf("\n\n\t\t球队名称:%s",t[n].Name);
	printf("\n\t\t球队建立时间:%s",t[n].EstablishmentTime);
	printf("\n\t\t球队主场:%s",t[n].HomeCourt);
	printf("\n\t\t球队历史荣誉:%s",t[n].Honor);
	printf("\n\t\t球队人数:%d",t[n].NumPeople);
	printf("\n\n");
	system("pause");
	return;
}

//查询球员信息选项
void show2(player p[DATE],int n,int i)
{
	system("CLS");
	printf("\n\n\t\t球员信息如下:");
	printf("\n\n\t\t球员人数为:%d",n);
	for(i = 0;i < n;i++)
	{
		printf("\n\n\t\t球员姓名:%s",p[i].Name);
	    printf("\n\t\t球员年龄:%d岁",p[i].Age);
    	printf("\n\t\t球员身高:%dcm",p[i].Height);
    	printf("\n\t\t球员体重:%dkg",p[i].Weight);
    	printf("\n\t\t球员球衣号码:%d",p[i].Number);
    	printf("\n\t\t球员司职:%s",p[i].Position);
     	printf("\n\t\t球员薪水:%d",p[i].Salary);
    	printf("\n\t\t球员生日:%s",p[i].BirthDate);
    	printf("\n");
	}
	system("pause");
	return;
}

//查询比赛信息选项
void show3(competition c[DATE],int n)
{
	system("CLS");
	printf("\n\n\t\t比赛信息如下:");
	printf("\n\t\t比赛名称:%s",c[n].Name);
	printf("\n\t\t比赛主场队伍:%s",c[n].HomeT);
	printf("\n\t\t比赛客场队伍:%s",c[n].VisitT);
	printf("\n\t\t比赛日期:%s",c[n].Date);
	printf("\n\t\t比赛主场队伍分数:%d",c[n].HomeTGoal);
	printf("\n\t\t比赛客场队伍分数:%d",c[n].VisitTGoal);
	printf("\n\n");
	system("pause");
	return;
}

//查询球员比赛数据信息选项
void show4(playerDate pd[DATE],int n)
{
	system("CLS");
	printf("\n\n\t\t球员比赛数据信息如下:");
	printf("\n\t\t球员姓名:%s",pd[n].Name);
	printf("\n\t\t球员球衣号码:%d",pd[n].Number);
	printf("\n\t\t球员司职:%s",pd[n].Position);
	printf("\n\t\t球员比赛进球数:%d",pd[n].Goal);
	printf("\n\t\t球员总传球数:%d",pd[n].Allpass);
	printf("\n\t\t球员成功传球数:%d",pd[n].Successpass);
	printf("\n\t\t球员犯规数:%d",pd[n].Foul);
	printf("\n\t\t球员黄牌数:%d",pd[n].YellowC);
	printf("\n\t\t球员红牌数:%d",pd[n].RedC);
	system("pause");
	return;
}

//增删球员选项
int add_cut(player p[DATE],int n,int i)
{
	while(1)
	{
		system("CLS");
		printf("%d",n);
	    printf("\n\n\t\t1.增加球员");
	    printf("\n\t\t2.删减球员");
        printf("\n\t\t0.退出");
	    int option;
	    printf("\n\t\t请输入选项:");
	    scanf("%d",&option);

		switch(option)
		{
			case 0:
			{
				return n;
			}
			case 1:
			{
				int addnum;
	system("CLS");
	printf("\n\n\t\t输入需要增加球员数量:");
	scanf("%d",&addnum);
	system("CLS");
	for(i = n;i < n+addnum;i++)
	{
		printf("\n\n\t\t输入第%d位球员信息:",i+1);
		printf("\n\t\t姓名:");
		scanf("%s",&p[i].Name);
		printf("\n\t\t年龄:");
		scanf("%d",&p[i].Age);
		printf("\n\t\t身高:");
		scanf("%d",&p[i].Height);
		printf("\n\t\t体重:");
		scanf("%d",&p[i].Weight);
		printf("\n\t\t球衣号码:");
		scanf("%d",&p[i].Number);
		printf("\n\t\t司职:");
		scanf("%s",&p[i].Position);
		printf("\n\t\t薪水:");
		scanf("%d",&p[i].Salary);
		printf("\n\t\t出生日期:");
		scanf("%s",&p[i].BirthDate);
		system("pause");
	}
	n = n + addnum;
				
				
				
				
				break;
			}
			case 2:
			{
				cut(p,n,i);
				break;
			}
			default: continue;
		}
	}
	return n;
}


//增加球员选项
int add(player p[DATE],int n,int i)
{
	
	return n;
}

//删减球员选项
int cut(player p[DATE],int n,int i)
{
	while(1)
	{
		system("CLS");
	printf("\n\n\t\t查询并删除球员:");
	printf("\n\t\t1.输入球衣号码查询并删除:");
	printf("\n\t\t2.输入姓名查询并删除:");
	printf("\n\t\t0.退出");
	int option;
	printf("\n\t\t请输入选项:");
	scanf("%d",&option);
    
		switch(option)
		{
			case 0:
			{
				return n;
			}
		    case 1:
		    {
		    	cut1(p,n,i);
		    	break;
			}
			case 2:
			{
				cut2(p,n,i);
				break;
			}
			
			default: continue;
		}
		
	}
	
	return n;
}

//查询并删除1
int cut1(player p[DATE],int n,int i)
{
	int number;
	system("CLS");
	printf("\n\n\t\t输入球员球衣号码:");
	scanf("%d",&number);
	system("CLS");
	for(i = 0;i < n;i++)
	{
		if(p[i].Number==number)
		{
	    printf("\n\n\t\t球员姓名:%s",p[i].Name);
	    printf("\n\t\t球员年龄:%d岁",p[i].Age);
    	printf("\n\t\t球员身高:%dcm",p[i].Height);
    	printf("\n\t\t球员体重:%dkg",p[i].Weight);
    	printf("\n\t\t球员球衣号码:%d",p[i].Number);
    	printf("\n\t\t球员司职:%s",p[i].Position);
     	printf("\n\t\t球员薪水:%d",p[i].Salary);
    	printf("\n\t\t球员生日:%s",p[i].BirthDate);
    	printf("\n");
    	printf("\n\t\t是否确定删除该球员?");
        printf("\n\n\t\t1.确定删除该球员");
    	cut1a(p,n,i);
    	break;
		}
	}
	return n;
}

//查询并删除1.1
int cut1a(player p[DATE],int n,int i)
{
    while(1)
	{
	
    printf("\n\n\t\t0.退出");
    int option;
    printf("\n\n\t\t请输入选项:");
    scanf("%d",&option);
    switch(option)
    {
    	case 0:
    	{
    		return n;
		}
		case 1:
		{
			for(;i < n;i++)
    	    {
    		    p[i] = p[i+1];
		    }
		    system("CLS");
		    printf("\n\n\t\t已成功删除该球员！");
		    n = n - 1;
		    printf("\n\t\t当前球员人数:%d",n);
			break;
		}
		default: continue;
	}
    }
	return n;
}

//查询并删除2
int cut2(player p[DATE],int n,int i)
{
	char name[20];
	system("CLS");
	printf("\n\n\t\t输入球员姓名:");
	scanf("%s",&name);
	system("CLS");
	for(i = 0;i < n;i++)
	{
		if(strcmp(p[i].Name,name)==0)
		{
	    printf("\n\n\t\t球员姓名:%s",p[i].Name);
	    printf("\n\t\t球员年龄:%d岁",p[i].Age);
    	printf("\n\t\t球员身高:%dcm",p[i].Height);
    	printf("\n\t\t球员体重:%dkg",p[i].Weight);
    	printf("\n\t\t球员球衣号码:%d",p[i].Number);
    	printf("\n\t\t球员司职:%s",p[i].Position);
     	printf("\n\t\t球员薪水:%d",p[i].Salary);
    	printf("\n\t\t球员生日:%s",p[i].BirthDate);
    	printf("\n");
    	printf("\n\t\t是否确定删除该球员?");
        printf("\n\n\t\t1.确定删除该球员"); 
    	cut2a(p,n,i);
		break;
		}
	}
	return n;
}

//查询并删除2.1
int cut2a(player p[DATE],int n,int i)
{
    while(1)
	{
    printf("\n\n\t\t0.退出");
    int option;
    printf("\n\t\t请输入选项:");
    scanf("%d",&option);
    switch(option)
    {
    	case 0:
    	{
    		return n;
		}
		case 1:
		{
			for(;i < n;i++)
    	    {
    	    	
    		    p[i] = p[i+1];
		    }
		    printf("\n\n\t\t已成功删除该球员！");
		    n = n - 1;
		    printf("\n\t\t当前球员人数:%d",n);
			break;
		}
		default: continue;
	}
    }
	return n;
}


//更改球队信息选项
void change_t(team t[DATE],int n)
{
	while(1)
	{
	printf("\n\n\t\t0.退出");
	printf("\n\n\t\t请输入选项:");
	int option;
	scanf("%d",&option);
	switch(option)
	{
	case 0:
	{
		return;
	}
	case 1:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的球队名称:");
		scanf("%s",&t[n].Name);		
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 2:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的球队成立时间:");
		scanf("%s",&t[n].EstablishmentTime);
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 3:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的球队主场:");
		scanf("%s",&t[n].HomeCourt);
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 4:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的球队荣誉:");
		scanf("%s",&t[n].Honor);
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 5:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的人数:");
		scanf("%d",&t[n].NumPeople);
		printf("\n\n\t\t更改完成!");
	}
	default: continue;
    }
    }
    return;
}

//更改比赛信息选项
void change_tm(competition c[DATE],int n)
{
	while(1)
	{
	printf("\n\n\t\t0.退出");
	printf("\n\n\t\t请输入选项:");
	int option;
	scanf("%d",&option);
	switch(option)
	{
	case 0:
	{
		return;
	}
	case 1:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的比赛名称:");
		scanf("%s",&c[n].Name);		
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 2:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的主场队伍:");
		scanf("%s",&c[n].HomeT);
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 3:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的客场队伍:");
		scanf("%s",&c[n].VisitT);
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 4:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后比赛日期:");
		scanf("%s",&c[n].Date);
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 5:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的主队进球数:");
		scanf("%d",&c[n].HomeTGoal);
		printf("\n\n\t\t更改完成!");
		break;
	}
	case 6:
	{
		system("CLS");
		printf("\n\n\t\t请输入更改后的客队进球数:");
		scanf("%d",&c[n].VisitTGoal);
		printf("\n\n\t\t更改完成!");
		break;
	}
	default: continue;
    }
    }
    return;
	
}


//更改球员比赛信息选项
void change_playerDate(playerDate pd[DATE],int n)
{
	

	
	
}

